package it.unibo.imola.parser.visitor.entity;

public interface ToolBox {

	public boolean exists(String name, Class<?>[] parameterTypes) throws Exception;

	public void exec(String name, Object[] actualParameters) throws Exception;
	
	public void load(String filename, Image dst) throws Exception;

	public void save(String filename, Image src) throws Exception;

	public void show(String windowname, Image src) throws Exception;

	public void close(String windowname) throws Exception;
	
	public void closeall() throws Exception;

	public void waitkey(Integer delay) throws Exception;

	public void iid_noise(Image input, Image output, Float sigma) throws Exception;

	public void imp_noise(Image input, Image output, Float percentage, Integer noisetype) throws Exception;

	public void erode(Image input, Image output, Integer rows, Integer cols, Integer shape, Integer iterations) throws Exception;
	
	public void dilate(Image input, Image output, Integer rows, Integer cols, Integer shape, Integer iterations) throws Exception;

	public void global_thres(Image input, Image output, Integer thres) throws Exception;

	public void contrast_stretch(Image input, Image output, Integer min, Integer max) throws Exception;
	
	public void equalize(Image input, Image output) throws Exception;

	public void mean_smoothing(Image input, Image output, Integer kernelsize) throws Exception;

	public void gauss_smoothing(Image input, Image output, Float sigma) throws Exception;

	public void bilateral_smoothing(Image input, Image output, Float colorsigma, Float spatialsigma) throws Exception ;

	public void median_smoothing(Image input, Image output, Integer kernelsize) throws Exception;

	public void sum(Image src1, Image src2, Image output) throws Exception;

	public void diff(Image src1, Image src2, Image output) throws Exception;

	public void absdiff(Image src1, Image src2, Image output) throws Exception;

	public void and(Image src1, Image src2, Image output) throws Exception;

	public void or(Image src1, Image src2, Image output) throws Exception;

	public void not(Image input, Image output) throws Exception;

	public void set(Image input, Integer value) throws Exception;

	public void invert(Image input, Image output) throws Exception;

	public void copy(Image input, Image output) throws Exception;


}
